package com.qf.sy2103.springboot.Controller.User;


import com.qf.sy2103.springboot.Service.UseTableService;
import com.qf.sy2103.springboot.Util.Constant;
import com.qf.sy2103.springboot.entity.UserTable;
import com.qf.sy2103.springboot.vo.Tablevo;
import com.qf.sy2103.springboot.vo.UseTablevo;
import com.qf.sy2103.springboot.vo.pagevo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Slf4j
@Controller
@RequestMapping("/use")
public class usetableController {

    @Autowired
    private UseTableService useTableService;

    //满足首次分页展示以及条件查询
    @ResponseBody
    @RequestMapping("/getuses")
    public Tablevo<UserTable> getAll(pagevo pagevo, UserTable userTable){
        log.debug("入参为 {} {}",pagevo,userTable);
        Tablevo<UserTable> tablevo = useTableService.getAll(pagevo,userTable);
        log.debug("返回的参数是 {}",tablevo);
        return tablevo;
    }

    @ResponseBody
    @RequestMapping("/add")
    public UseTablevo addUse(UserTable userTable){
        UseTablevo useTablevo  = new UseTablevo();
        log.debug("入参为 {}",userTable);
        Boolean i = useTableService.addUse(userTable);
        if (i){
            useTablevo.setStatus(Constant.CLIENT_ADD_SUCCESS);
            return useTablevo;
        }
        useTablevo.setMessage(Constant.USER_VIEWS_FULE);
        return useTablevo;
    }

    @ResponseBody
    @RequestMapping("/update")
    public UseTablevo updateUse(UserTable userTable){
        log.debug("入参为 {}",userTable);
        UseTablevo useTablevo = new UseTablevo();
        Boolean b = useTableService.updateUse(userTable);
        if (b){
            useTablevo.setStatus(Constant.USER_UPDATE_SUCCESS);
            return useTablevo;
        }
        useTablevo.setMessage(Constant.USER_UPDATE_FALES);
        return useTablevo;
    }


    @ResponseBody
    @RequestMapping("/delete")
    public UseTablevo deleteUse(@RequestParam(value = "ids", required = false) List<Integer> ids) {
        log.debug("入参为 {}", ids);
        UseTablevo useTablevo = new UseTablevo();
        Boolean b =useTableService.deleteUse(ids);
        if (b){
            useTablevo.setStatus(Constant.USER_DELETE_SUCCESS);
            return useTablevo;
        }
        useTablevo.setMessage(Constant.USER_DELETE_FALES);
        return useTablevo;
    }
}
